package com.ruoyi.web.service;

import java.util.Map;

/**
 * 评论与售后分析服务接口
 * 
 * @author ruoyi
 */
public interface ICommentAfterServiceService {

    /**
     * 获取评论统计数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param goodId 商品ID
     * @param ratingRange 评分范围
     * @return 评论统计数据
     */
    Map<String, Object> getCommentStatistics(String startTime, String endTime, Long goodId, String ratingRange);

    /**
     * 获取评论评分分布
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param goodId 商品ID
     * @return 评论评分分布数据
     */
    Map<String, Object> getCommentRatingDistribution(String startTime, String endTime, Long goodId);

    /**
     * 获取评论关键词分析
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param goodId 商品ID
     * @param topN 关键词数量
     * @return 评论关键词分析数据
     */
    Map<String, Object> getCommentKeywords(String startTime, String endTime, Long goodId, Integer topN);

    /**
     * 获取负面评价预警
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param goodId 商品ID
     * @param threshold 预警阈值
     * @return 负面评价预警数据
     */
    Map<String, Object> getNegativeCommentAlert(String startTime, String endTime, Long goodId, Double threshold);

    /**
     * 获取售后统计数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param status 处理状态
     * @param serviceType 服务类型
     * @return 售后统计数据
     */
    Map<String, Object> getAfterServiceStatistics(String startTime, String endTime, String status, String serviceType);

    /**
     * 获取售后类型分布
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param status 处理状态
     * @return 售后类型分布数据
     */
    Map<String, Object> getAfterServiceCategory(String startTime, String endTime, String status);

    /**
     * 获取售后处理时长分析
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param serviceType 服务类型
     * @return 售后处理时长分析数据
     */
    Map<String, Object> getAfterServiceDuration(String startTime, String endTime, String serviceType);

    /**
     * 获取雷达图数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param goodId 商品ID
     * @return 雷达图数据
     */
    Map<String, Object> getRadarChartData(String startTime, String endTime, Long goodId);

    /**
     * 获取树状图数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param type 分类类型
     * @return 树状图数据
     */
    Map<String, Object> getTreeChartData(String startTime, String endTime, String type);

    /**
     * 获取词云图数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param goodId 商品ID
     * @param maxWords 最大词数
     * @return 词云图数据
     */
    Map<String, Object> getWordCloudData(String startTime, String endTime, Long goodId, Integer maxWords);
}